const { DirImgList, sequelize } = require('../models/dirimglist');
const { ImgList } = require('../models/imglist');
const { DirList } = require('../models/dirlist');

const config = require('../config'); // 引入配置文件

const fs = require('fs');
const path = require('path');

let tmpdir = config.task.tmpdir
let suoluetudir = config.task.suoluetudir
// let tmpdir = 'D:/xiangmu/shujuguanli/tmpdir/'

async function emptyImgList(params) {

  // 删除数据库表 监控文件夹列表
  DirList.destroy({
    where: {},
    truncate: true, // 如果设置为true，则等同于直接truncate表
  })

  // 删除数据库表 文件夹img列表
  DirImgList.destroy({
    where: {},
    truncate: true, // 如果设置为true，则等同于直接truncate表
  })

  // 删除数据库表 imglist
  ImgList.destroy({
    where: {},
    truncate: true, // 如果设置为true，则等同于直接truncate表
  })

  // 删除缓存文件 缩略图文件夹
  deleteFolderFiles(tmpdir)

  deleteFolderFiles(suoluetudir)

  return 'success'
}

function deleteFolderFiles(dirPath) {
  // 读取文件夹内容
  fs.readdir(dirPath, (err, files) => {
      if (err) throw err;

      for (const file of files) {
          const fullPath = path.join(dirPath, file);
          // 判断是否为文件或目录
          fs.stat(fullPath, (err, stats) => {
              if (err) throw err;

              if (stats.isDirectory()) {
                  // 如果是子目录，递归调用（如果需要删除子目录中的文件）
                  deleteFolderFiles(fullPath);
              } else {
                  // 删除文件
                  fs.unlink(fullPath, (err) => {
                      if (err) throw err;
                      console.log(`${fullPath} 已被删除`);
                  });
              }
          });
      }
  });
}


exports.emptyImgList = emptyImgList